/**
 * 注册小程序, 使用 App()
 *      配置选项有:
 *          1. onLaunch         应用级别生命周期回调 - 小程序启动
 *          2. onShow           应用级别生命周期回调 - 小程序显示
 *          3. onHide           应用级别生命周期回调 - 小程序隐藏
 *          4. onError          监听错误
 *          5. onPageNotFound
 *          6. onUnhandledRejection
 *          7. onThemeChange
 *          8. 其他
 */
App({
    onLaunch() {
        console.log('App onLaunch')
    },
    onShow() {
        console.log('App onShow')
    },
    onHide() {
        console.log('App onHide')
    },
    /**
     * 监听小程序的错误
     *      应用场景: 实现错误上报, 方便分析项目运行的情况,有助于后续修复       [埋点]
     */
    onError(error) {
        console.log('App onError', error)
    },
    /**
     * 监听未捕获的Promise异常
     *      应用场景: 实现错误上报, 方便分析项目运行的情况,有助于后续修复       [埋点]
     */
    onUnhandledRejection(reject) {
        console.log('App onUnhandledRejection', reject)
    },
    /**
     * 监听我们页面找不到异常
     *      应用场景:
     *          1. 之前做了一个页面,该页面是一个活动页面,双十一开启,通过二维码访问
     *          2. 双十一过去之后,咱们把该页面给下线了
     *          3. 这时有用户通过之前的二维码进行访问,就会触发 onPageNotFound 该函数
     */
    onPageNotFound() {
        console.log('App onPageNotFound')
    },
    /**
     * 监听系统主题切换
     *      PS: 在app.json中配置darkmode为true，即表示当前小程序已适配 DarkMode
     *      应用场景: 收集用户的喜好,方便后续默认使用该喜好
     *      options: {
     *          theme: 'dark' | 'light'
     *      }
     */
    onThemeChange(options) {
        console.log('App onThemeChange', options)
        // 考虑一个,编好存储在后端还是前端

        wx.setStorageSync('theme', options.theme)

        // 选择使用前端存储
        /**
         *  异步                     同步
         *  wx.setStorage()       => wx.setStorageSync()
         *  wx.getStorage()       => wx.getStorageSync()
         *  wx.removeStorage()    => wx.removeStorageSync()
         *  wx.clearStorage()     => wx.clearStorageSync()
         *  
         */
        // wx.setStorage({
        //     key: 'theme',
        //     data: options.theme
        // })
        // wx.getStorage({
        //     key: 'theme',
        //     success: (data) => {
        //         console.log('获取成功', data)
        //     }
        // })

    },
    globalData: {
        "myName": "张三",
        userInfo: null
    }
})